变量和数据类型
一、变量
1  | 变量:值是可以改变的  | 
注意:在Python中,所有的变量必须先赋值再使用(先定义,在定义必须要赋值)
1  | Traceback (most recent call last):  | 
- 一行代码同时为多个变量赋同样的值
 
1  | a = b = c = 1  | 
- 交换两个变量的值
 
1  | a = 3  | 
变量的本质
在代码中,定义a = 5,对于计算机而言会做什么事情呢?
1  | # 变量的本质:内存中一块存储空间,当我们声明一个变量时,计算机就需要在内存给变量分配一块内存空间  | 
1  | // C语言  | 
1  | # Python语言 一切皆对象  | 
二、标示符
标示符一般是指变量名、函数名、类名、包名等,在Python定义标示符时需要注意几下规则:
标示符不能以数字开头,可以由字母、数字、下划线来组成(甚至可以是中文,但是不建议)
中文命名可能出现乱码
在Python2中默认并不支持中文(标示符、代码中都不能出现中文),因为Python2的默认编码是ASCII,ASCII并不支持中文
A-65 a-97
要让Python2支持中文,需要在文件头加 # coding:utf-8
在Python3中默认使用的是unicode字符集(万国码-支持世界所有的语言-规范标准 - utf-8编码方式 )
区分大小写 name 和Name是两个变量
不能以Python中的关键字和保留字作为标示符
1  | import keyword  | 
命名的细节(开发规范/开发习惯)
name = “Mr_lee”
age = 18
- 望文生义,便于理解和记忆 (不要使用拼音 )
 - 变量名和函数名,建议使用小写。如果由多个单词组成时,中间用下划线连接(this_is_a_var)或不用下划线连接,连接处的单词首字母大写(helloWord) - 小驼峰
 - 类名:每个单词的首字母大写,其余全部小写(HelloWorld) - 大驼峰
 - 包名:全部小写,不加下划线
 
三、数据类型
1  | 在Python中定义的每一个变量都是有类型的  | 
在Python定义变量时,不需要声明类型,与C语言不一样
1  | // C语言定义变量时,必须先指定数据的类型  | 
- 动态数据类型: 变量在声明时,不需要指定数据类型 如:Python
 
1  | a = 5 # => int  | 
代码在执行会根据值来推导出它的数据类型
- 静态数据类型:在声明变量时,需要先指定数据类型,如:C、C++、Java
 
1  | //C语言  | 
Python中常见的数据类型(内置的数据类型)
数字类型(广义)
- 整型(整数 int) a = 5
 - 浮点型(小数 float 不区分单精度和双精度) pi =- 3.14
 - 复数 a + bj 用的很少
 
布尔类型
- 表示为真和假
 - 值可以为True和False
 - 在内存中是以1和0进行存储的 本质上是整型
 
1
2
3
4
5
6True + True # => 1
3 > 2 # => True
# 表示性别
gender = True # 男
gender = False # 女字符串类型
- 使用’x’或”x”或’’’x’’’或”””x”””都表示是字符串
 
1
2
3
4
5
6
7a = Tom # 错误
a = "Tom"
a = 'Tom'
a = """
可以换行
表示多行字符串
"""1
2a = "Tom\n哈哈"
print(a)转义字符
- \n 表示换行
 - \t 表示制表符 4个空格(有小问题)
 \'输出单引号 在单引号中嵌套单引号\"输出双引号 在双引号嵌套双引号\\输出一个反斜杠
可以直接在单引号中嵌套双引号或在双引号中嵌套单引号
空类型 : None a = None
容器类型(广义):
- 列表 – C中的数组 存储多个数据 [2,4,6,8,22]
 - 元组 – 可以理解为是一个不可变化的“列表” (2,4,6,8,22)
 - 字典 – {key:value,…}
 - 集合 - {2,3,4,5}
 
四、输入和输出
1、输出
- 使用print()函数,输出某个变量或某个值到屏幕中 内存->屏幕
 
1  | a = 5  | 
1  | # 一次输出多个值  | 
为什么print会自动换行
1  | # 源代码  | 
注释方式:
- 单行注释 #
 - 多行注释 ‘’’ ‘’’ 或 “”” “””
 
注释的作用:
- 解释说明: 给代码添加额外的说明,解释代码的作用
 - 屏蔽代码:不让代码执行
 
2、输入
输入是从键盘输入一个值给内存中某个变量
1  | a = input() # 从键盘输入的数据默认都是字符串  | 
1  | # 加提示  | 
输入整数:
1  | a = int(input('请输入')) # 类型转换 字符串->int  | 
五、类型转换
1、将其它类型转为int类型
- float转int
 
1  | pi = 3.14  | 
- str转int
 
1  | s = '125'  | 
- bool转int
 
1  | y = True  | 
2、将其它类型转为float类型
- int转float
 
1  | a = 5  | 
- str转float
 
1  | s = '3.14'  | 
- bool转float
 
1  | y = True  | 
3、将其它类型转为str类型
- int转str
 
1  | a = 5  | 
- float转str
 
1  | pi = 3.14  | 
- bool转str
 
1  | y = True  | 
- 列表转str
 
1  | n = [2,4,6,8,22]  | 
将字符串和整数相加:
1  | r = 'a' + 1 # 字符串和整数不能直接相加  | 
六、获取类型
- type()函数:获取某个变量或值的数据类型
 
1  | a = 5  | 
- isinstance()函数:判断某个变量或值是否为某个类型 结果为bool类型
 
1  | a = 5  | 
七、运算符和表达式
什么是运算符
运算符也称为操作符,+ - * / % > < … operator
什么是表达式
由操作符和操作数组成的,a + b , a>b ,a 也可以是一个单值
运算符的分类:
- 算术运算符
 
1  | # + - * / % //  | 
- 关系运算符
 
1  | # > < >= <= == !=  | 
- 赋值运算符
 
1  | a = 5 # a是作为左值 -- 修改  | 
- 复合赋值运算符
 
1  | # += -= *= /= %= //=  | 
- 逻辑运算符
 
1  | # 逻辑与 and 左右两边的表达式都为真 则结果为真  | 
输入一个年份,计算这一年是否为闰年
1  | year = int(input('请输入年份:'))  | 
- 位运算符(了解)
 
1  | # 按位运算: 按位与、按位或、按位取反、按位异或、左移、右移  | 
1  | a = 0b00111100 # 10进制的60  | 
- 三元运算符
 
1  | 
  | 
八、运算符的优先级
1  | 1. 先算乘除再算加减,遇到括号先算括号里的  | 
作业:
 1. 练习上课代码 
 2. 总结笔记 
 3.